home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d12
/
asmbler.arc
/
CHMOD.ASM
< prev
next >
Wrap
Assembly Source File
|
1988-11-19
|
2KB
|
70 lines
ASSUME CS:CHMODC,DS:CHMODC
CHMODC SEGMENT PARA PUBLIC 'CODE'
ORG 80H
FOOSTR EQU THIS BYTE
ORG 100H
CHMOD: CLD
XOR BP,BP
DEC FOOSTR ; [0080H]
JL BADPARAM
MOV CL,FOOSTR ; [0080H]
XOR CH,CH
MOV DI,OFFSET FOOSTR[2] ; 0082H
MOV AL,' '
REPNZ SCASB
JNZ BADPARAM
MOV BYTE PTR [DI-01],00
MOV BX,DI
MOV FOOSTR,CL ; [0080H]
L0122:
CMP FOOSTR,0 ; BYTE PTR [0080H]
JLE DOCHMOD
MOV AL,[BX]
MOV CX,16
MOV DI,OFFSET HEXSTR
REPNZ SCASB
JNZ BADHEX
SUB DI,OFFSET HEXSTR + 1
MOV CX,4
SHL BP,CL
ADD BP,DI
JMP SHORT LOOP1
BADHEX:
MOV DX,OFFSET HEXERR
JMP SHORT WRITESTR
LOOP1:
INC BX
DEC FOOSTR ; BYTE PTR [0080H]
JMP L0122
DOCHMOD:
MOV AX,4301H
MOV CX,BP
MOV DX,OFFSET FOOSTR+2 ; 0082H
INT 21H
JNB EXIT
CMP AX,2
JNZ NOACCESS
MOV DX,OFFSET FNDERR
JMP SHORT WRITESTR
NOACCESS:
MOV DX,OFFSET ACCERR
JMP SHORT WRITESTR
BADPARAM:
MOV DX,OFFSET PRMERR
WRITESTR:
MOV AH,09H
INT 21H
EXIT:
INT 20H
HEXSTR db '0123456789ABCDEF'
HEXERR db 7,'Illegal HEX character',10,13,'$'
PRMERR db 7,'Too few parameters',10,13,'$'
FNDERR db 7,'File not found',10,13,'$'
ACCERR db 7,'Access denied - probably illegal attribute',10,13,'$'
CHMODC ENDS
END CHMOD